home *** CD-ROM | disk | FTP | other *** search
/ Software of the Month Club 2000 October / Software of the Month - Ultimate Collection Shareware 277.iso / pc / PROGRAMS / UTILITY / WINLINUX / DATA1.CAB / programs_-_include / LINUX / IF_PPP.H < prev    next >
C/C++ Source or Header  |  1999-09-17  |  6KB  |  149 lines

  1. /*    $Id: if_ppp.h,v 1.14 1998/07/07 04:27:33 paulus Exp $    */
  2.  
  3. /*
  4.  * if_ppp.h - Point-to-Point Protocol definitions.
  5.  *
  6.  * Copyright (c) 1989 Carnegie Mellon University.
  7.  * All rights reserved.
  8.  *
  9.  * Redistribution and use in source and binary forms are permitted
  10.  * provided that the above copyright notice and this paragraph are
  11.  * duplicated in all such forms and that any documentation,
  12.  * advertising materials, and other materials related to such
  13.  * distribution and use acknowledge that the software was developed
  14.  * by Carnegie Mellon University.  The name of the
  15.  * University may not be used to endorse or promote products derived
  16.  * from this software without specific prior written permission.
  17.  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
  18.  * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
  19.  * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  20.  *
  21.  */
  22.  
  23. /*
  24.  *  ==FILEVERSION 980704==
  25.  *
  26.  *  NOTE TO MAINTAINERS:
  27.  *     If you modify this file at all, please set the above date.
  28.  *     if_ppp.h is shipped with a PPP distribution as well as with the kernel;
  29.  *     if everyone increases the FILEVERSION number above, then scripts
  30.  *     can do the right thing when deciding whether to install a new if_ppp.h
  31.  *     file.  Don't change the format of that line otherwise, so the
  32.  *     installation script can recognize it.
  33.  */
  34.  
  35. #ifndef _IF_PPP_H_
  36. #define _IF_PPP_H_
  37.  
  38. #if defined(__linux__)
  39. #include <linux/if.h>
  40. #include <linux/ioctl.h>
  41. #include <linux/ppp_defs.h>
  42. #endif
  43.  
  44. /*
  45.  * Packet sizes
  46.  */
  47.  
  48. #define    PPP_MTU        1500    /* Default MTU (size of Info field) */
  49. #define PPP_MAXMRU    65000    /* Largest MRU we allow */
  50. #define PPP_VERSION    "2.3.3"
  51. #define PPP_MAGIC    0x5002    /* Magic value for the ppp structure */
  52. #define PROTO_IPX    0x002b    /* protocol numbers */
  53. #define PROTO_DNA_RT    0x0027  /* DNA Routing */
  54.  
  55.  
  56. /*
  57.  * Bit definitions for flags.
  58.  */
  59.  
  60. #define SC_COMP_PROT    0x00000001    /* protocol compression (output) */
  61. #define SC_COMP_AC    0x00000002    /* header compression (output) */
  62. #define    SC_COMP_TCP    0x00000004    /* TCP (VJ) compression (output) */
  63. #define SC_NO_TCP_CCID    0x00000008    /* disable VJ connection-id comp. */
  64. #define SC_REJ_COMP_AC    0x00000010    /* reject adrs/ctrl comp. on input */
  65. #define SC_REJ_COMP_TCP    0x00000020    /* reject TCP (VJ) comp. on input */
  66. #define SC_CCP_OPEN    0x00000040    /* Look at CCP packets */
  67. #define SC_CCP_UP    0x00000080    /* May send/recv compressed packets */
  68. #define SC_ENABLE_IP    0x00000100    /* IP packets may be exchanged */
  69. #define SC_COMP_RUN    0x00001000    /* compressor has been inited */
  70. #define SC_DECOMP_RUN    0x00002000    /* decompressor has been inited */
  71. #define SC_DEBUG    0x00010000    /* enable debug messages */
  72. #define SC_LOG_INPKT    0x00020000    /* log contents of good pkts recvd */
  73. #define SC_LOG_OUTPKT    0x00040000    /* log contents of pkts sent */
  74. #define SC_LOG_RAWIN    0x00080000    /* log all chars received */
  75. #define SC_LOG_FLUSH    0x00100000    /* log all chars flushed */
  76. #define    SC_MASK        0x0f0000ff    /* bits that user can change */
  77.  
  78. /* state bits */
  79. #define SC_XMIT_BUSY    0x10000000    /* (used by isdn_ppp?) */
  80. #define SC_RCV_ODDP    0x08000000    /* have rcvd char with odd parity */
  81. #define SC_RCV_EVNP    0x04000000    /* have rcvd char with even parity */
  82. #define SC_RCV_B7_1    0x02000000    /* have rcvd char with bit 7 = 1 */
  83. #define SC_RCV_B7_0    0x01000000    /* have rcvd char with bit 7 = 0 */
  84. #define SC_DC_FERROR    0x00800000    /* fatal decomp error detected */
  85. #define SC_DC_ERROR    0x00400000    /* non-fatal decomp error detected */
  86.  
  87. /*
  88.  * Ioctl definitions.
  89.  */
  90.  
  91. struct npioctl {
  92.     int        protocol;    /* PPP protocol, e.g. PPP_IP */
  93.     enum NPmode    mode;
  94. };
  95.  
  96. /* Structure describing a CCP configuration option, for PPPIOCSCOMPRESS */
  97. struct ppp_option_data {
  98.     __u8    *ptr;
  99.     __u32    length;
  100.     int    transmit;
  101. };
  102.  
  103. struct ifpppstatsreq {
  104.     struct ifreq     b;
  105.     struct ppp_stats stats;            /* statistic information */
  106. };
  107.  
  108. struct ifpppcstatsreq {
  109.     struct ifreq          b;
  110.     struct ppp_comp_stats stats;
  111. };
  112.  
  113. #define ifr__name       b.ifr_ifrn.ifrn_name
  114. #define stats_ptr       b.ifr_ifru.ifru_data
  115.  
  116. /*
  117.  * Ioctl definitions.
  118.  */
  119.  
  120. #define    PPPIOCGFLAGS    _IOR('t', 90, int)    /* get configuration flags */
  121. #define    PPPIOCSFLAGS    _IOW('t', 89, int)    /* set configuration flags */
  122. #define    PPPIOCGASYNCMAP    _IOR('t', 88, int)    /* get async map */
  123. #define    PPPIOCSASYNCMAP    _IOW('t', 87, int)    /* set async map */
  124. #define    PPPIOCGUNIT    _IOR('t', 86, int)    /* get ppp unit number */
  125. #define    PPPIOCGRASYNCMAP _IOR('t', 85, int)    /* get receive async map */
  126. #define    PPPIOCSRASYNCMAP _IOW('t', 84, int)    /* set receive async map */
  127. #define    PPPIOCGMRU    _IOR('t', 83, int)    /* get max receive unit */
  128. #define    PPPIOCSMRU    _IOW('t', 82, int)    /* set max receive unit */
  129. #define    PPPIOCSMAXCID    _IOW('t', 81, int)    /* set VJ max slot ID */
  130. #define PPPIOCGXASYNCMAP _IOR('t', 80, ext_accm) /* get extended ACCM */
  131. #define PPPIOCSXASYNCMAP _IOW('t', 79, ext_accm) /* set extended ACCM */
  132. #define PPPIOCXFERUNIT    _IO('t', 78)        /* transfer PPP unit */
  133. #define PPPIOCSCOMPRESS    _IOW('t', 77, struct ppp_option_data)
  134. #define PPPIOCGNPMODE    _IOWR('t', 76, struct npioctl) /* get NP mode */
  135. #define PPPIOCSNPMODE    _IOW('t', 75, struct npioctl)  /* set NP mode */
  136. #define PPPIOCGDEBUG    _IOR('t', 65, int)    /* Read debug level */
  137. #define PPPIOCSDEBUG    _IOW('t', 64, int)    /* Set debug level */
  138. #define PPPIOCGIDLE    _IOR('t', 63, struct ppp_idle) /* get idle time */
  139.  
  140. #define SIOCGPPPSTATS   (SIOCDEVPRIVATE + 0)
  141. #define SIOCGPPPVER     (SIOCDEVPRIVATE + 1)    /* NEVER change this!! */
  142. #define SIOCGPPPCSTATS  (SIOCDEVPRIVATE + 2)
  143.  
  144. #if !defined(ifr_mtu)
  145. #define ifr_mtu    ifr_ifru.ifru_metric
  146. #endif
  147.  
  148. #endif /* _IF_PPP_H_ */
  149.